package com.siwei.mes.service.experiment;

import com.alibaba.fastjson.JSONObject;
import com.siwei.mes.entity.dto.PrintExperimentInfo;
import com.siwei.mes.entity.dto.PrintMixExperimentInfo;
import com.siwei.mes.entity.dto.PrintMixInfoDto;
import com.siwei.mes.entity.dto.PrintVerifyRecordOtherInfo;
import com.siwei.mes.entity.erp.Rwdextra;
import com.siwei.mes.entity.erp.RwdextraExtend;
import com.siwei.mes.entity.erp.RwdextraPrintInfo;
import com.siwei.mes.entity.mixproportion.MixProportion;
import com.siwei.mes.entity.mixproportion.MixProportionReport;
import com.siwei.mes.entity.mixproportion.MixProportionVerifyRecord;
import com.siwei.mes.entity.system.Equipment;

import java.util.Date;
import java.util.List;

/**
 * 打印相关
 *
 * @Description: 打印相关
 * @Version: 1.0
 * @author: mlchen
 * @date: 2024/7/24 10:56
 */
public interface PrintService {
    /**
     * 获取试验台账打印相关数据
     *
     * @param experimentIdList
     */

    List<PrintExperimentInfo> getExperimentPrintInfo(List<Long> experimentIdList);

    /**
     * 获取ERP任务单打印相关数据
     *
     * @param frwdIdList
     * @return
     */
    List<PrintExperimentInfo> getErpRwdPrintInfo(List<Integer> frwdIdList);

    /**
     * 根据任务单修改记录 查询打印数据
     *
     * @param updateLogIdList 任务单修改记录
     * @return
     */
    List<PrintExperimentInfo> getErpRwdPrintInfoToUpdateLog(List<Long> updateLogIdList);

    /**
     * 获取仪器设备打印信息
     *
     * @param equipment
     * @return
     */
    List<Equipment> getEquipmentPrintInfo(Equipment equipment);

    List<PrintMixInfoDto> getPrintInfoByMixIds(List<Long> mixIdList);

    PrintMixExperimentInfo getMixExperimentInfo(MixProportion mixProportion);

    PrintMixExperimentInfo getMixMaterialsExperimentInfo(MixProportion mixProportion, Date planTime);

    PrintVerifyRecordOtherInfo getMixProportionVerifyRecordInfo(MixProportionVerifyRecord verifyRecord, JSONObject proportionMaterial, Date planTime);

    void setRwdextraValue(RwdextraExtend rwdextraExtend, Rwdextra rwdextra);
}
